Skip to content

Files

Latest commit

 

History

History
56 lines (45 loc) · 1.39 KB

1071. 字符串的最大公因子.md

File metadata and controls

56 lines (45 loc) · 1.39 KB

题目位置

https://leetcode-cn.com/problems/greatest-common-divisor-of-strings/


题解

    /**
     * 思路:
     *  
     *
     * @author 小道仙
     * @date 2020年3月12日
     */
    public String gcdOfStrings(String str1, String str2) {

        int minLength = str1.length() > str2.length() ? str2.length() : str1.length();

        char[] char_1 = str1.toCharArray();
        char[] char_2 = str2.toCharArray();

        StringBuilder result = new StringBuilder();

        for (int i = 0;i < minLength; i++){
            if (char_1[i] == char_2[i]){
                result.append(char_1[i]);
            }else {
                break;
            }
        }
        int count = result.length() - 1;
        while (count >= 0){
            if (fun(str1,result.toString()) && fun(str2,result.toString())){
                return result.toString();
            }
            result.deleteCharAt(count --);
        }
        return "";
    }

    public boolean fun(String str, String result){
        if (str.length() % result.length() != 0){
            return false;
        }
        int count = str.length() / result.length();
        StringBuilder sb = new StringBuilder();
        for (int i = 0;i < count; i++){
            sb.append(result);
        }
        return str.equals(sb.toString());
    }